package com.richpay.basejava.base10;

/**
 *  equals()方法的使用：
 *  默认情况下:即在Object类中的equals()的功能和==相同，比较对象的引用地址是否相同。
 *
 *  一般根据需求都会在子类中重写equals()方法，使他具有比较对象的内容是否相同的功能。
 *
 *  String类由Sun公司提供，内部已经通过方法重写实现了比较字符串是否相同的功能，
 *  如果自己编写的类需要也实现比较对象的内容是否相等的功能，需要自己编写，具体实现的核销代码为:
 *  查看Person类中的equals()方法的实现。
 *
 */
public class ObjectEqualsDemo {
    public static void main(String[] args){
        String str1="张三";
        String str2="张三";

        /**
         * == 比较的是: 对于基本数据类型，比较的是值是否相同。
         *            对于引用数据类型比较的是引用地址是否相同。
         */
        System.out.println("str1==str2的值："+(str1==str2));//true

        String str3=new String("张三");
        System.out.println("str1==str3的值："+(str1==str3));//false
        //在字符串中，如果比较对象的内容是否相同，则必须使用equals()方法完成。
        System.out.println("str1.equals(str3)的值："+str1.equals(str3));//true
        System.out.println("============================");

        Person p1=new Person("张三",20);
        Person p2=new Person("张三",20);
        System.out.println("p1==p2的值:"+(p1==p2));
        System.out.println("p1.equals(p2)的值:"+p1.equals(p2));

    }
}
